from flask import current_app

from info import create_app, db, models
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager

# from info.modules import passport
# from info.modules.passport.views import image_code
from info.models import User

app = create_app("testing")

# 2,创建manage对象,管理app
manager = Manager(app)

# 3,使用Migrate将app和db关联起来
Migrate(app, db)

# 4,添加操作命令使用,MigrateCommand
manager.add_command("db", MigrateCommand)
# /passport/image_code

#给manager添加运行方法,为了创建管理员用户
#参数-u: 表示参数的名称用户名   --username: 对-n的解释说明
#参数-p: 表示参数名字密码   --password: 对-p的解释
#参数dest: 形式参数,用来在方法括号中接收传递的值
@manager.option('-p', '--password', dest='password')
@manager.option('-u', '--username', dest='username')
def create_superuser(username,password):

    #1,创建管理员对象
    user = User()
    user.nick_name = username
    user.password = password
    user.mobile = "18210094349"
    user.is_admin = True

    #2,保存到数据库中
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        return "创建失败"

    return "创建成功"

if __name__ == '__main__':
    manager.run()